<HTML>



<HEAD>
<TITLE>Table of Contents</TITLE>
<SCRIPT>
function setFocus() {	
	if ((navigator.appName != "Netscape") && (parseFloat(navigator.appVersion) == 2)) {
	return;
	} else {
	self.focus();
	}
}
</SCRIPT></HEAD>
<BODY BGCOLOR="#FFFFFF" onLoad="setFocus()";>
<A NAME="top"></A>

<A NAME="preface"></A>

<H4><A HREF="#pref2"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Preface to Book"></A>

<A HREF="preffs.htm" TARGET="_mainDisplayFrame">Preface to CD</A></H4>



<A NAME="pref2"></A>

<H4><A HREF="#fore"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Foreword"></A>

<A HREF="pref2fs.htm" TARGET="_mainDisplayFrame">Preface to Book</A></H4>



<A NAME="fore"></A>

<H4><A HREF="#guide"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Guide to Readers"></A>

<A HREF="forefs.htm" TARGET="_mainDisplayFrame">Foreword</A></H4>



<A NAME="guide"></A>

<H4><A HREF="#chap1"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Introduction"></A>

<A HREF="guidefs.htm" TARGET="_mainDisplayFrame">Guide to Readers</A></H4>



<A NAME="chap1"></A>

<H4><A HREF="#chap2"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: A Case Study: Designing a Document Editor"></A>

<A HREF="chap1fs.htm" TARGET="_mainDisplayFrame">Introduction</A></H4>

<UL>
	<LI><A HREF="chap1fs.htm#sec1-1" TARGET="_mainDisplayFrame">What Is a Design Pattern?</A> 
	<LI><A HREF="chap1fs.htm#sec1-2" TARGET="_mainDisplayFrame">Design
		Patterns in Smalltalk MVC</A>
	<LI><A HREF="chap1fs.htm#sec1-3" TARGET="_mainDisplayFrame">Describing
		Design Patterns</A>
	<LI><A HREF="chap1fs.htm#sec1-4" TARGET="_mainDisplayFrame">The Catalog
		of Design Patterns</A>
	<LI><A HREF="chap1fs.htm#sec1-5" TARGET="_mainDisplayFrame">Organizing
		the Catalog</A>
	<LI><A HREF="chap1fs.htm#sec1-6" TARGET="_mainDisplayFrame">How Design
		Patterns Solve Design Problems</A>
	<LI><A HREF="chap1fs.htm#sec1-7" TARGET="_mainDisplayFrame">How to
		Select a Design Pattern</A>
	<LI><A HREF="chap1fs.htm#sec1-8" TARGET="_mainDisplayFrame">How to Use
		a Design Pattern</A>
</UL>

<A NAME="chap2"></A>

<H4><A HREF="#chap3"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Creational Patterns"></A>

<A HREF="chap2fs.htm" TARGET="_mainDisplayFrame">A Case Study: Designing a Document Editor</A></H4>

<UL>
	<LI><A HREF="chap2fs.htm#sec2-1" TARGET="_mainDisplayFrame">Design
		Problems</A></LI>
	<LI><A HREF="chap2fs.htm#sec2-2" TARGET="_mainDisplayFrame">Document
		Structure</A></LI>
	<LI><A HREF="chap2fs.htm#sec2-3" TARGET="_mainDisplayFrame">Formatting</A></LI>
	<LI><A HREF="chap2fs.htm#sec2-4" TARGET="_mainDisplayFrame">Embellishing
		the User Interface</A></LI>
	<LI><A HREF="chap2fs.htm#sec2-5" TARGET="_mainDisplayFrame">Supporting
		Multiple Look-and-Feel Standards</A></LI>
	<LI><A HREF="chap2fs.htm#sec2-6" TARGET="_mainDisplayFrame">Supporting
		Multiple Window Systems</A></LI>
	<LI><A HREF="chap2fs.htm#sec2-7" TARGET="_mainDisplayFrame">User
		Operations</A></LI>
	<LI><A HREF="chap2fs.htm#sec2-8" TARGET="_mainDisplayFrame">Spelling Checking
		and Hyphenation</A></LI>
	<LI><A HREF="chap2fs.htm#sec2-9" TARGET="_mainDisplayFrame">Summary</A></LI>
</UL>

<H3>Design Pattern Catalog</H3>

<A NAME="chap3"></A>

<H4><A HREF="#chap4"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Structural Patterns"></A>

<A HREF="chap3fs.htm" TARGET="_mainDisplayFrame">Creational Patterns</A></H4>

<UL>
	<LI><A HREF="pat3afs.htm" TARGET="_mainDisplayFrame">Abstract Factory</A></LI>
	<LI><A HREF="pat3bfs.htm" TARGET="_mainDisplayFrame">Builder</A></LI>
	<LI><A HREF="pat3cfs.htm" TARGET="_mainDisplayFrame">Factory Method</A></LI>
	<LI><A HREF="pat3dfs.htm" TARGET="_mainDisplayFrame">Prototype</A></LI>
	<LI><A HREF="pat3efs.htm" TARGET="_mainDisplayFrame">Singleton</A></LI>
	<P></P>
	<LI><A HREF="disc3fs.htm" TARGET="_mainDisplayFrame">Discussion of Creational
		Patterns</A></LI>
</UL>

<A NAME="chap4"></A>

<H4><A HREF="#chap5"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Behavioral Patterns"></A>

<A HREF="chap4fs.htm" TARGET="_mainDisplayFrame">Structural Patterns</A></H4>

<UL>
	<LI><A HREF="pat4afs.htm" TARGET="_mainDisplayFrame">Adapter</A></LI>
	<LI><A HREF="pat4bfs.htm" TARGET="_mainDisplayFrame">Bridge</A></LI>
	<LI><A HREF="pat4cfs.htm" TARGET="_mainDisplayFrame">Composite</A></LI>
	<LI><A HREF="pat4dfs.htm" TARGET="_mainDisplayFrame">Decorator</A></LI>
	<LI><A HREF="pat4efs.htm" TARGET="_mainDisplayFrame">Facade</A></LI>
	<LI><A HREF="pat4ffs.htm" TARGET="_mainDisplayFrame">Flyweight</A></LI>
	<LI><A HREF="pat4gfs.htm" TARGET="_mainDisplayFrame">Proxy</A></LI>
	<P></P>
	<LI><A HREF="disc4fs.htm" TARGET="_mainDisplayFrame">Discussion of
		Structural Patterns</A></LI>
</UL>

<A NAME="chap5"></A>

<H4><A HREF="#chap6"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Conclusion"></A>

<A HREF="chap5fs.htm" TARGET="_mainDisplayFrame">Behavioral Patterns</A></H4>

<UL>
	<LI><A HREF="pat5afs.htm" TARGET="_mainDisplayFrame">Chain of Responsibility</A></LI>
	<LI><A HREF="pat5bfs.htm" TARGET="_mainDisplayFrame">Command</A></LI>
	<LI><A HREF="pat5cfs.htm" TARGET="_mainDisplayFrame">Interpreter</A></LI>
	<LI><A HREF="pat5dfs.htm" TARGET="_mainDisplayFrame">Iterator</A></LI>
	<LI><A HREF="pat5efs.htm" TARGET="_mainDisplayFrame">Mediator</A></LI>
	<LI><A HREF="pat5ffs.htm" TARGET="_mainDisplayFrame">Memento</A></LI>
	<LI><A HREF="pat5gfs.htm" TARGET="_mainDisplayFrame">Observer</A></LI>
	<LI><A HREF="pat5hfs.htm" TARGET="_mainDisplayFrame">State</A></LI>
	<LI><A HREF="pat5ifs.htm" TARGET="_mainDisplayFrame">Strategy</A></LI>
	<LI><A HREF="pat5jfs.htm" TARGET="_mainDisplayFrame">Template Method</A></LI>
	<LI><A HREF="pat5kfs.htm" TARGET="_mainDisplayFrame">Visitor</A></LI>
	<P></P>
	<LI><A HREF="disc5fs.htm" TARGET="_mainDisplayFrame">Discussion of Behavioral
		Patterns</A></LI>
</UL>

<A NAME="chap6"></A>

<H4><A HREF="#chapA"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Glossary"></A>

<A HREF="chap6fs.htm" TARGET = "_mainDisplayFrame">Conclusion</A></H4>

<UL>
	<LI><A HREF="chap6fs.htm#sec6-1" TARGET="_mainDisplayFrame">What to Expect
		from Design Patterns</A></LI>
	<LI><A HREF="chap6fs.htm#sec6-2" TARGET="_mainDisplayFrame">A Brief
		History</A></LI>
	<LI><A HREF="chap6fs.htm#sec6-3" TARGET="_mainDisplayFrame">The Pattern
		Community</A></LI>
	<LI><A HREF="chap6fs.htm#sec6-4" TARGET="_mainDisplayFrame">An
		Invitation</A></LI>
	<LI><A HREF="chap6fs.htm#sec6-5" TARGET="_mainDisplayFrame">A Parting
		Thought</A></LI>
</UL>

<A NAME="chapA"></A>

<H4><A HREF="#chapB"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Guide to Notation"></A>

<A HREF="chapAfs.htm" TARGET="_mainDisplayFrame">Glossary</A></H4>



<A NAME="chapB"></A>

<H4><A HREF="#chapC"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Foundation Classes"></A>

<A HREF="chapBfs.htm" TARGET="_mainDisplayFrame">Guide to Notation</A></H4>

<UL>
	<LI><A HREF="chapBfs.htm#secB-1" TARGET="_mainDisplayFrame">Class
		Diagram</A></LI>
	<LI><A HREF="chapBfs.htm#secB-2" TARGET="_mainDisplayFrame">Object
		Diagram</A></LI>
	<LI><A HREF="chapBfs.htm#secB-3" TARGET="_mainDisplayFrame">Interaction
		Diagram</A></LI>
</UL>

<A NAME="chapC"></A>

<H4><A HREF="#bib"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Bibliography"></A>

<A HREF="chapCfs.htm" TARGET="_mainDisplayFrame">Foundation Classes</A></H4>

<UL>
	<LI><A HREF="chapCfs.htm#secC-1" TARGET="_mainDisplayFrame">List</A></LI>
	<LI><A HREF="chapCfs.htm#secC-2" TARGET="_mainDisplayFrame">Iterator</A></LI>
	<LI><A HREF="chapCfs.htm#secC-3" TARGET="_mainDisplayFrame">ListIterator</A></LI>
	<LI><A HREF="chapCfs.htm#secC-4" TARGET="_mainDisplayFrame">Point</A></LI>
	<LI><A HREF="chapCfs.htm#secC-5" TARGET="_mainDisplayFrame">Rect</A></LI>
</UL>

<A NAME="bib"></A>

<H4><A HREF="#index"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: Index"></A>

<A HREF="bibfs.htm" TARGET="_mainDisplayFrame">Bibliography</A></H4>



<A NAME="index"></A>

<H4><A HREF="#last"><IMG SRC="gifsb/down3.gif" ALIGN=TOP BORDER=0 alt="next: navigation"></A>

<A HREF="indexfs.htm" TARGET="_mainDisplayFrame">Index</A></H4>

<A NAME="last"></A>
<P><A HREF="#top"><IMG SRC="gifsb/up3.gif" BORDER=0></A><BR>
<A HREF="preffs.htm" TARGET="_mainDisplayFrame"><IMG SRC="gifsb/rightar3.gif"
	ALIGN=TOP BORDER=0></A> <A HREF="preffs.htm"
	TARGET="_mainDisplayFrame">Preface to CD</A></P>

</BODY>

</HTML>
